// 云函数入口文件
const cloud = require('wx-server-sdk')
cloud.init({ env: cloud.DYNAMIC_CURRENT_ENV })
const db = cloud.database()

// 云函数入口函数
exports.main = async (event, context) => {
  console.log('getArticles云函数收到调用请求:', event)
  try {
    // 获取参数
    const { tag, searchText, limit = 10, skip = 0 } = event
    
    // 构建查询条件
    const query = {}
    
    // 按标签筛选
    if (tag) {
      query.tags = db.command.all([tag])
    }
    
    // 搜索功能
    if (searchText) {
      // 标题中包含搜索文本
      query.title = db.RegExp({
        regexp: searchText,
        options: 'i', // 不区分大小写
      })
    }
    
    console.log('查询条件:', query, '限制:', limit, '跳过:', skip)
    
    // 查询文章总数
    const countResult = await db.collection('articles')
      .where(query)
      .count()
    
    console.log('查询到文章总数:', countResult.total)
    
    // 查询文章列表
    const listResult = await db.collection('articles')
      .where(query)
      .orderBy('publishDate', 'desc')
      .skip(skip)
      .limit(limit)
      .get()
    
    console.log('查询到文章列表数量:', listResult.data.length)
    
    // 确保返回的数据是可用状态
    const processedData = listResult.data.map(item => {
      // 如果日期是 Date 对象，转换为字符串
      if (item.publishDate instanceof Date) {
        item.publishDate = item.publishDate.toISOString()
      }
      return item
    })
    
    return {
      success: true,
      total: countResult.total,
      data: processedData
    }
  } catch (err) {
    console.error('getArticles云函数执行出错:', err)
    return {
      success: false,
      errMsg: err.message || '未知错误'
    }
  }
} 